Estatísticas de problema: como cada métrica é computada — MOJ docs

Estatísticas de problema: como cada métrica é computada

Este documento explica, seção por seção, como a página Estatísticas do problema do Treino Livre (/treino/problema/stats/?id=<problema>) calcula o que mostra — incluindo as decisões estatísticas e as limitações honestas de cada número. A fonte de verdade é o endpoint GET /treino/problem-stats (contrato completo em API.md); esta página descreve a semântica.

De onde vêm os dados

Cada conta do treino guarda o próprio histórico de submissões (1 linha por submissão: problema, linguagem, veredicto e horário em epoch). A estatística de um problema é a agregação de todas as linhas de todos os usuários para aquele problema — só do Treino Livre: submissões feitas em contests de turma não entram.

Resumo

Métrica Cálculo
submissões total de linhas de history do problema
tentaram usuários distintos com ≥1 submissão
resolveram usuários distintos com ≥1 submissão aceita
resolvem (por usuário) resolveram ÷ tentaram — a taxa por usuário
taxa por submissão submissões aceitas ÷ submissões totais — mede quanto se erra tentando; não define a dificuldade
subs / usuário submissões ÷ tentaram
dificuldade rótulo pela taxa por usuário: ≥90% muito fácil · ≥70% fácil · ≥50% médio · <50% difícil · sem tentantes = novo
dirt (submissões de quem resolveu até o 1º AC − ACs) ÷ (essas submissões). É a métrica do resolver do ICPC, a mesma das estatísticas do contest. Alto = o problema pune erros.

A dificuldade tem uma fonte só no sistema (lib/difficulty.sh no servidor, shared/difficulty.js na web). A busca, a sugestão, o perfil, o sorteio de contest e esta página leem a mesma chave. Antes desta página rotular pela taxa por submissão, o mesmo problema saía "fácil" na busca e "difícil" aqui (issue #30). A taxa por submissão continua na página como número, com o nome certo.

Percentil de dificuldade contra o acervo

O card "X% do acervo é mais fácil que este" compara a taxa de sucesso por usuário (resolveram ÷ tentaram) deste problema com a de todos os problemas públicos do treino (a mesma base da lista de problemas).

Fatos

Linha do tempo

Calendário de atividade

Como resolvem

Tempo de execução (submissões aceitas)


Contrato do endpoint (campos e formatos): API.md, rota /treino/problem-stats. A exibição de veredictos segue a política central da plataforma (fonte única lib/verdict.sh — veredictos nunca são traduzidos).